//package com.xuecheng.manage_course.com.security.service.jpa;
//
//import com.xuecheng.framework.domain.course.CourseBase;
//import com.xuecheng.framework.domain.course.Teachplan;
//import com.xuecheng.framework.exception.ExceptionCast;
//import com.xuecheng.framework.model.response.CommonCode;
//import com.xuecheng.framework.model.response.ResponseResult;
//import com.xuecheng.manage_course.com.security.mapper.jpa.CourseBaseRepository;
//import com.xuecheng.manage_course.com.security.mapper.jpa.TeachplanRepository;
//import org.springframework.beans.BeanUtils;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//import org.springframework.transaction.annotation.Transactional;
//import org.springframework.util.StringUtils;
//
//import java.util.List;
//import java.util.Optional;
//
//@Service
//public class CourseService {
//
//    @Autowired
//    TeachplanRepository teachplanRepository;
//
//    @Autowired
//    CourseBaseRepository courseBaseRepository;
//
//    @Transactional
//    public ResponseResult addTeachplan(Teachplan teachplan) {
//
//        if(teachplan == null ||
//                StringUtils.isEmpty(teachplan.getPname()) ||
//                StringUtils.isEmpty(teachplan.getCourseid())){
//            ExceptionCast.cast(CommonCode.INVALID_PARAM);
//        }
//        //课程id
//        String courseid = teachplan.getCourseid();
//        //父结点的id
//        String parentid = teachplan.getParentid();
//        if(StringUtils.isEmpty(parentid)){
//            //获取课程的根结点
//            parentid = getTeachplanRoot(courseid);
//        }
//        //查询根结点信息
//        Optional<Teachplan> optional = teachplanRepository.findById(parentid);
//        Teachplan teachplan1 = optional.get();
//        //父结点的级别
//        String parent_grade = teachplan1.getGrade();
//        //创建一个新结点准备添加
//        Teachplan teachplanNew = new Teachplan();
//        //将teachplan的属性拷贝到teachplanNew中
//        BeanUtils.copyProperties(teachplan,teachplanNew);
//        //要设置必要的属性
//        teachplanNew.setParentid(parentid);
//        if(parent_grade.equals("1")){
//            teachplanNew.setGrade("2");
//        }else{
//            teachplanNew.setGrade("3");
//        }
//        teachplanNew.setStatus("0");//未发布
//        teachplanRepository.save(teachplanNew);
//        return new ResponseResult(CommonCode.SUCCESS);
//    }
//
//    //获取课程的根结点
//    public String getTeachplanRoot(String courseId){
//        Optional<CourseBase> optional = courseBaseRepository.findById(courseId);
//        if(!optional.isPresent()){
//            return null;
//        }
//        CourseBase courseBase = optional.get();
//        //调用dao查询teachplan表得到该课程的根结点（一级结点）
//        List<Teachplan> teachplanList = teachplanRepository.findByCourseidAndParentid(courseId, "0");
//        if(teachplanList == null || teachplanList.size()<=0){
//            //新添加一个课程的根结点
//            Teachplan teachplan = new Teachplan();
//            teachplan.setCourseid(courseId);
//            teachplan.setParentid("0");
//            teachplan.setGrade("1");//一级结点
//            teachplan.setStatus("0");
//            teachplan.setPname(courseBase.getName());
//            teachplanRepository.save(teachplan);
//            return teachplan.getId();
//
//        }
//        //返回根结点的id
//        return teachplanList.get(0).getId();
//
//    }
//
//}
